1. Field of the Invention
The present invention concerns a device and a method for computer-assisted generation of a manipulator path, and in particular for computer-assisted generation of a manipulator process.
2. Description of the Prior Art
A manipulator process generally includes a path for one or more manipulators, in particular robots and combinations of robots and additional axles such as linear axles, rotating or rotation-tilt tables, and an action order for one or more tools, in particular manipulator tools such as a gripper, a welding gun or the like. For example, a manipulator process for automatic mounting of a seal at motor vehicle door can include, among other things: the delivery of the door into a mounting cell via a first tool in the form of a conveyor belt or a first industrial robot, the positioning on a first axle of a rotating table, the application of an adhesive along an edge of the door via a second industrial robot with a second tool in the form of a glue gun, and the insertion of the door by a third industrial robot whose gripper represents a third tool. For this procedure, the second industrial robot moves along a manipulator path such that the glue gun that it directs follows edges of the door on a tool path and applies adhesive to different segments, i.e. the glue gun is activated and deactivated in a predetermined action sequence on the tool path.
A predetermined sequence of one or more positions is designated herein in general as a path, and a position defines the bearing and/or orientation. A tool path therefore includes one or more bearings and/or orientations of the tool, for example the bearing and orientation of a gripper, an exit opening of a glue gun or the like. A manipulator path correspondingly encompasses one or more poses of the manipulator—described for example in coordinate or articulation space by its joint positions or described in Cartesian work space (for example) by bearing and orientation of its TCPs (“Tool Center Points”) that clearly arise from the joint positions—and, in the case of redundant manipulators or singular poses (possibly under consideration of additional boundary conditions), can be mapped to the joint positions via inverse transformation of the kinematics or, respectively, solving of the inverse kinematics.
In at least one position of a tool path, one or more process values of the tool can be altered in order to produce actions or, respectively, execute action sequences. For example, as process values the quantity of the output adhesive can be changed by varying the pressure given a glue gun; amperage and/or supplied welding wire volume can be changed given a welding gun; the opening angle or, respectively, opening times of the gripper tongs can be changed given a gripper; and so forth.
The process values of a manipulator-driven tool along a path of a manipulator, together with this path of the manipulator, thus describe a manipulator process in which a manipulator brings a tool into at least one position and there at least one process value of the tool is altered. Operation (for example in a finishing or mounting cell) of multiple manipulators or, respectively, tools together can form a manipulator process, as can the combination of the different manipulator paths and process value curves.
Such manipulator processes have conventionally been input step by step on site (for example in the mounting cell) into a manipulator controller via what is known as teaching, in which an operator with the manipulator adopts manual poses on the desired manipulator path that are subsequently connected into a manipulation path by a path generator of the manipulator controller. Problems—for example singular poses or poses that cannot be achieved, collisions and the like—are thereby only detected later, which requires time-consuming re-teaching. An optimization of the manipulator process by means of mathematical methods, like a transfer to other manipulators, is just barely possible.
In addition, offline programming is known. In this procedure, a control instruction whose execution by the manipulator controller directs the manipulator on the desired path is generated from a sequence of individual control commands that the operator inputs to a computer or the manipulator controller. However, due to the complex control commands that are respectively different for different manipulator controllers, this method requires highly qualified operators and is less intuitive, which in practice conflicts with a broad application. A modification of the manipulator process by changing the abstract control commands is complicated.
The early focus on the manipulator path in the planning of a manipulator process is common to both approaches, such that the manipulator that is used must already be established (known) at the beginning of the manipulator process planning and the manipulator path must thus be regenerated given a change of the manipulator that is used. The programming of manipulator paths via teaching or offline programming is for the most part only somewhat clear and prevents the wider use of manipulators, for example in artisan operations in which the user is primarily interested in the solution to the process task, for example the application of adhesive along a component edge.